[レポート] Optimize virtual desktop performance with enhanced observability に参加してきました! #EUC201 #AWSreInvent
こんにちは! AWS 事業本部オペレーション部の平根です。
現在、re:Invent 2024 に現地参加しています。
Amazon WorkSpaces のパフォーマンス監視を行うための CloudWatch の設定について学べそうな「Optimize virtual desktop performance with enhanced observability」というワークショップがありましたので参加してみました。
セッション概要
セッションタイトル
EUC201 | Optimize virtual desktop performance with enhanced observability
セッションの説明
※機械翻訳
測定しなければ、効果的な管理はできません。
Amazon WorkSpaces Family サービスに含まれる強力な可観測性機能により、フリートの監視、トラブルシューティング、パフォーマンスの最大化を支援します。
このワークショップに参加して、しきい値アラーム、自動通知、レイテンシー、CPUパフォーマンス、メモリ使用率に関するメトリクスなどの高度な機能を実践的に体験し、エンドユーザーエクスペリエンスとフリート全体のパフォーマンスを最適化する方法を学びましょう。参加にはノートパソコンの持参が必要です。
スピーカー
- Dave Jaskie
- Senior Solution Architect, AMZNTVL
- Aamir Khan
- Sr Technical Program Manager, Amazon Web Services
Level
200 – Intermediate
事前説明
初めに、Amazon WorkSpaces のモニタリングについて以下の説明がありました。
- コンソール上でネイティブに利用できる 21 種類のメトリクスが存在する
- WorkSpaces へのアクセスログを利用することでより詳細な分析できる
- CloudTrail を活用して WorkSpaces に加えられた設定変更やアクションを追跡できる
また、AWS が公開している WorkSpaces 用の CloudWatch カスタムダッシュボードについても紹介がありました。
こちらは CloudFormation テンプレートで提供されており、WorkSpaces 利用ユーザーからの フィードバックを参考にして作成されているそうです。
上記のカスタムダッシュボードは以下のページ [1] で紹介されており、ページ内の URL から CloudFormation テンプレートの実行も可能です。
[1]:AWS CloudFormation テンプレートを利用してカスタム CloudWatch ダッシュボードを作成する
Workshopで実施した内容
今回の ワークショップのアーキテクチャーは以下です。
WorkSpaces の環境は事前に構築されており、Wrokshop で実施することは主に CloudWatch ダッシュボードの設定でした。
以下が本 Workshop で実施した演習項目となります。
※タイトルは機械翻訳
Amazon EventBridge の設定
EventBridge で WorkSpace へのアクセスと API call を検知し、その内容を CloudWatch ロググループへ送信するように設定しました。
CloudWatch インターネットモニターの設定
CloudWatch インターネットモニターを作成し、監視対象として Workspaces のディレクトリを設定しました。
インターネットモニターには、Workspaces インスタンスに接続しているユーザー数や接続元の地域、利用している IP アドレスなどが表示されます。
ワークスペースへのログイン
あらかじめ Secret Managaer に保存されていた Workspace の管理者パスワードを利用して、実際に Workspace にログインを行いました。
CloudWatch ダッシュボードの設定
CloudWatch Metrics Insight-クエリビルダーを利用して、CloudWatch ダッシュボードに以下のウィジェット(棒グラフ)を作成しました。
- CPU 使用率トップ 10 ユーザーを表示するウィジェット
- メモリ 使用率トップ 10 ユーザーを表示するウィジェット
- WorkSpace インスタンスの稼働時間トップ 10 ユーザーを表示するウィジェット
- ルートボリュームの使用率トップ 10 ユーザーを表示するウィジェット
- ユーザーボリューム使用量トップ 10 ユーザーを表示するウィジェット
テンプレートからカスタムダッシュボードを作成する
[1] のページから得られる CloudFormation テンプレートを利用して、CloudWatch ダッシュボードに Connection Insights ダッシュボードとヘルプデスクダッシュボードを作成しました。
各ダッシュボードでは以下のような内容が確認できます。
Connection Insights ダッシュボードで確認できる内容
- WorkSpaces のクライアントバージョンやサポート状況
- WorkSpaces に接続している IP アドレス
ヘルプデスクダッシュボードで確認できるメトリクス
- CPU の使用率
- メモリ使用率
- セッション内レイテンシー
- ルートボリューム
- ユーザーボリューム
- パケットロス
- ディスク使用量
動的変数の作成
CloudWatch ダッシュボードに動的変数としてリージョンを設定し、ドロップダウンでリージョン名を指定してウィジェットの内容を切り替えることができるように設定を行いました。
CloudWatch インターネットモニターダッシュボードを確認する
CloudWatch インターネットモニターダッシュボードを確認し、IP アドレスでデータをフィルタリングできることを確認しました。
タグを使用してダッシュボードを作成する
Metrics Explorer を利用して、特定のタグが付与されている Workspace のメトリクスを表示する Cloudwatch ダッシュボードを作成しました。
CloudWatch アラームの作成
Workspace が Unheakthy になった場合や、CPU 使用率が 90%を超えた場合に SNS トピックに通知を行う ClouWatch アラームを作成しました。
ためになったこと
[1] のページで公開されているような AWS 提供の Cloudwatch ダッシュボードは、ユーザーからの FB を元に作られているという点をスピーカーの方が強調していた点が印象的でした。
AWS によって公開されているテンプレートは積極的に利用していきたいと感じました。
また、CloudWatch Metrics Insight-クエリビルダーから CloudWatch ダッシュボードの作成は以下のような画面で簡単に設定することができ、気軽に利用することが可能そうです。
最後に
自身が CludWatch メトリクスのダッシュボードを作成したのは今回が初めてでしたが、比較的容易にウィジェットを作成可能で、パフォーマンス監視が視覚的にしやすく便利だと感じました。
Workspace をご利用の場合は、是非今回のダッシュボードを作成してみてください!
以上、平根でした!